SELECT 
  customer_id, 
  customer_name, 
  COUNT(order_id) as total 
FROM 
  customers 
  INNER JOIN orders ON customers.customer_id = orders.customer_id 
GROUP BY 
  customer_id, 
  customer_name 
HAVING 
  COUNT(order_id) > 5 
ORDER BY 
  COUNT(order_id) DESC;

UPDATE 
  customers 
SET 
  totalorders = ordersummary.total 
FROM 
  (
    SELECT 
      customer_id, 
      count(order_id) As total 
    FROM 
      orders 
    GROUP BY 
      customer_id
  ) As ordersummary 
WHERE 
  customers.customer_id = ordersummary.customer_id

SELECT 
  * 
FROM 
  sometable 
UNION ALL 
SELECT 
  * 
FROM 
  someothertable;

SET 
  NAMES 'utf8';

CREATE TABLE `PREFIX_address` (
  `id_address` int(10) unsigned NOT NULL auto_increment, 
  `id_country` int(10) unsigned NOT NULL, 
  `id_state` int(10) unsigned default NULL, 
  `id_customer` int(10) unsigned NOT NULL default '0', 
  `id_manufacturer` int(10) unsigned NOT NULL default '0', 
  `id_supplier` int(10) unsigned NOT NULL default '0', 
  `id_warehouse` int(10) unsigned NOT NULL default '0', 
  `alias` varchar(32) NOT NULL, 
  `company` varchar(64) default NULL, 
  `lastname` varchar(32) NOT NULL, 
  `firstname` varchar(32) NOT NULL, 
  `address1` varchar(128) NOT NULL, 
  `address2` varchar(128) default NULL, 
  `postcode` varchar(12) default NULL, 
  `city` varchar(64) NOT NULL, 
  `other` text, 
  `phone` varchar(16) default NULL, 
  `phone_mobile` varchar(16) default NULL, 
  `vat_number` varchar(32) default NULL, 
  `dni` varchar(16) DEFAULT NULL, 
  `date_add` datetime NOT NULL, 
  `date_upd` datetime NOT NULL, 
  `active` tinyint(1) unsigned NOT NULL default '1', 
  `deleted` tinyint(1) unsigned NOT NULL default '0', 
  PRIMARY KEY (`id_address`), 
  KEY `address_customer` (`id_customer`), 
  KEY `id_country` (`id_country`), 
  KEY `id_state` (`id_state`), 
  KEY `id_manufacturer` (`id_manufacturer`), 
  KEY `id_supplier` (`id_supplier`), 
  KEY `id_warehouse` (`id_warehouse`)
) ENGINE = ENGINE_TYPE DEFAULT CHARSET = utf8

CREATE TABLE `PREFIX_alias` (
  `id_alias` int(10) unsigned NOT NULL auto_increment, 
  `alias` varchar(255) NOT NULL, 
  `search` varchar(255) NOT NULL, 
  `active` tinyint(1) NOT NULL default '1', 
  PRIMARY KEY (`id_alias`), 
  UNIQUE KEY `alias` (`alias`)
) ENGINE = ENGINE_TYPE DEFAULT CHARSET = utf8

CREATE TABLE `PREFIX_carrier` (
  `id_carrier` int(10) unsigned NOT NULL AUTO_INCREMENT, 
  `id_reference` int(10) unsigned NOT NULL, 
  `id_tax_rules_group` int(10) unsigned DEFAULT '0', 
  `name` varchar(64) NOT NULL, 
  `url` varchar(255) DEFAULT NULL, 
  `active` tinyint(1) unsigned NOT NULL DEFAULT '0', 
  `deleted` tinyint(1) unsigned NOT NULL DEFAULT '0', 
  `shipping_handling` tinyint(1) unsigned NOT NULL DEFAULT '1', 
  `range_behavior` tinyint(1) unsigned NOT NULL DEFAULT '0', 
  `is_module` tinyint(1) unsigned NOT NULL DEFAULT '0', 
  `is_free` tinyint(1) unsigned NOT NULL DEFAULT '0', 
  `shipping_external` tinyint(1) unsigned NOT NULL DEFAULT '0', 
  `need_range` tinyint(1) unsigned NOT NULL DEFAULT '0', 
  `external_module_name` varchar(64) DEFAULT NULL, 
  `shipping_method` int(2) NOT NULL DEFAULT '0', 
  `position` int(10) unsigned NOT NULL default '0', 
  `max_width` int(10) DEFAULT 0, 
  `max_height` int(10) DEFAULT 0, 
  `max_depth` int(10) DEFAULT 0, 
  `max_weight` int(10) DEFAULT 0, 
  `grade` int(10) DEFAULT 0, 
  PRIMARY KEY (`id_carrier`), 
  KEY `deleted` (`deleted`, `active`), 
  KEY `id_tax_rules_group` (`id_tax_rules_group`)
) ENGINE = ENGINE_TYPE DEFAULT CHARSET = utf8

CREATE TABLE IF NOT EXISTS `PREFIX_specific_price_rule` (
  `id_specific_price_rule` int(10) unsigned NOT NULL AUTO_INCREMENT, 
  `name` VARCHAR(255) NOT NULL, 
  `id_shop` int(11) unsigned NOT NULL DEFAULT '1', 
  `id_currency` int(10) unsigned NOT NULL, 
  `id_country` int(10) unsigned NOT NULL, 
  `id_group` int(10) unsigned NOT NULL, 
  `from_quantity` mediumint(8) unsigned NOT NULL, 
  `price` DECIMAL(20, 6), 
  `reduction` decimal(20, 6) NOT NULL, 
  `reduction_type` enum('amount', 'percentage') NOT NULL, 
  `from` datetime NOT NULL, 
  `to` datetime NOT NULL, 
  PRIMARY KEY (`id_specific_price_rule`), 
  KEY `id_product` (
    `id_shop`, `id_currency`, `id_country`, 
    `id_group`, `from_quantity`, `from`, 
    `to`
  )
) ENGINE = ENGINE_TYPE DEFAULT CHARSET = utf8

UPDATE 
  `PREFIX_configuration` 
SET 
  value = '6' 
WHERE 
  name = 'PS_SEARCH_WEIGHT_PNAME'

UPDATE 
  `PREFIX_hook_module` 
SET 
  position = 1 
WHERE 
  id_hook = (
    SELECT 
      id_hook 
    FROM 
      `PREFIX_hook` 
    WHERE 
      name = 'displayPayment'
  ) 
  AND id_module = (
    SELECT 
      id_module 
    FROM 
      `PREFIX_module` 
    WHERE 
      name = 'cheque'
  ) 
  OR id_hook = (
    SELECT 
      id_hook 
    FROM 
      `PREFIX_hook` 
    WHERE 
      name = 'displayPaymentReturn'
  ) 
  AND id_module = (
    SELECT 
      id_module 
    FROM 
      `PREFIX_module` 
    WHERE 
      name = 'cheque'
  ) 
  OR id_hook = (
    SELECT 
      id_hook 
    FROM 
      `PREFIX_hook` 
    WHERE 
      name = 'displayHome'
  ) 
  AND id_module = (
    SELECT 
      id_module 
    FROM 
      `PREFIX_module` 
    WHERE 
      name = 'homeslider'
  ) 
  OR id_hook = (
    SELECT 
      id_hook 
    FROM 
      `PREFIX_hook` 
    WHERE 
      name = 'actionAuthentication'
  ) 
  AND id_module = (
    SELECT 
      id_module 
    FROM 
      `PREFIX_module` 
    WHERE 
      name = 'statsdata'
  ) 
  OR id_hook = (
    SELECT 
      id_hook 
    FROM 
      `PREFIX_hook` 
    WHERE 
      name = 'actionShopDataDuplication'
  ) 
  AND id_module = (
    SELECT 
      id_module 
    FROM 
      `PREFIX_module` 
    WHERE 
      name = 'homeslider'
  ) 
  OR id_hook = (
    SELECT 
      id_hook 
    FROM 
      `PREFIX_hook` 
    WHERE 
      name = 'displayTop'
  ) 
  AND id_module = (
    SELECT 
      id_module 
    FROM 
      `PREFIX_module` 
    WHERE 
      name = 'blocklanguages'
  ) 
  OR id_hook = (
    SELECT 
      id_hook 
    FROM 
      `PREFIX_hook` 
    WHERE 
      name = 'actionCustomerAccountAdd'
  ) 
  AND id_module = (
    SELECT 
      id_module 
    FROM 
      `PREFIX_module` 
    WHERE 
      name = 'statsdata'
  ) 
  OR id_hook = (
    SELECT 
      id_hook 
    FROM 
      `PREFIX_hook` 
    WHERE 
      name = 'displayCustomerAccount'
  ) 
  AND id_module = (
    SELECT 
      id_module 
    FROM 
      `PREFIX_module` 
    WHERE 
      name = 'favoriteproducts'
  ) 
  OR id_hook = (
    SELECT 
      id_hook 
    FROM 
      `PREFIX_hook` 
    WHERE 
      name = 'displayAdminStatsModules'
  ) 
  AND id_module = (
    SELECT 
      id_module 
    FROM 
      `PREFIX_module` 
    WHERE 
      name = 'statsvisits'
  ) 
  OR id_hook = (
    SELECT 
      id_hook 
    FROM 
      `PREFIX_hook` 
    WHERE 
      name = 'displayAdminStatsGraphEngine'
  ) 
  AND id_module = (
    SELECT 
      id_module 
    FROM 
      `PREFIX_module` 
    WHERE 
      name = 'graphvisifire'
  ) 
  OR id_hook = (
    SELECT 
      id_hook 
    FROM 
      `PREFIX_hook` 
    WHERE 
      name = 'displayAdminStatsGridEngine'
  ) 
  AND id_module = (
    SELECT 
      id_module 
    FROM 
      `PREFIX_module` 
    WHERE 
      name = 'gridhtml'
  ) 
  OR id_hook = (
    SELECT 
      id_hook 
    FROM 
      `PREFIX_hook` 
    WHERE 
      name = 'displayLeftColumnProduct'
  ) 
  AND id_module = (
    SELECT 
      id_module 
    FROM 
      `PREFIX_module` 
    WHERE 
      name = 'blocksharefb'
  ) 
  OR id_hook = (
    SELECT 
      id_hook 
    FROM 
      `PREFIX_hook` 
    WHERE 
      name = 'actionSearch'
  ) 
  AND id_module = (
    SELECT 
      id_module 
    FROM 
      `PREFIX_module` 
    WHERE 
      name = 'statssearch'
  ) 
  OR id_hook = (
    SELECT 
      id_hook 
    FROM 
      `PREFIX_hook` 
    WHERE 
      name = 'actionCategoryAdd'
  ) 
  AND id_module = (
    SELECT 
      id_module 
    FROM 
      `PREFIX_module` 
    WHERE 
      name = 'blockcategories'
  ) 
  OR id_hook = (
    SELECT 
      id_hook 
    FROM 
      `PREFIX_hook` 
    WHERE 
      name = 'actionCategoryUpdate'
  ) 
  AND id_module = (
    SELECT 
      id_module 
    FROM 
      `PREFIX_module` 
    WHERE 
      name = 'blockcategories'
  ) 
  OR id_hook = (
    SELECT 
      id_hook 
    FROM 
      `PREFIX_hook` 
    WHERE 
      name = 'actionCategoryDelete'
  ) 
  AND id_module = (
    SELECT 
      id_module 
    FROM 
      `PREFIX_module` 
    WHERE 
      name = 'blockcategories'
  ) 
  OR id_hook = (
    SELECT 
      id_hook 
    FROM 
      `PREFIX_hook` 
    WHERE 
      name = 'actionAdminMetaSave'
  ) 
  AND id_module = (
    SELECT 
      id_module 
    FROM 
      `PREFIX_module` 
    WHERE 
      name = 'blockcategories'
  ) 
  OR id_hook = (
    SELECT 
      id_hook 
    FROM 
      `PREFIX_hook` 
    WHERE 
      name = 'displayMyAccountBlock'
  ) 
  AND id_module = (
    SELECT 
      id_module 
    FROM 
      `PREFIX_module` 
    WHERE 
      name = 'favoriteproducts'
  ) 
  OR id_hook = (
    SELECT 
      id_hook 
    FROM 
      `PREFIX_hook` 
    WHERE 
      name = 'displayFooter'
  ) 
  AND id_module = (
    SELECT 
      id_module 
    FROM 
      `PREFIX_module` 
    WHERE 
      name = 'blockreinsurance'
  )

ALTER TABLE 
  `PREFIX_employee` 
ADD 
  `bo_color` varchar(32) default NULL 
AFTER 
  `stats_date_to`

INSERT INTO `PREFIX_cms_category_lang` 
VALUES 
  (
    1, 3, 'Inicio', '', 'home', NULL, NULL, 
    NULL
  )

INSERT INTO `PREFIX_cms_category` 
VALUES 
  (1, 0, 0, 1, NOW(), NOW(), 0)

UPDATE 
  `PREFIX_cms_category` 
SET 
  `position` = 0

ALTER TABLE 
  `PREFIX_customer` 
ADD 
  `note` text 
AFTER 
  `secure_key`

ALTER TABLE 
  `PREFIX_contact` 
ADD 
  `customer_service` tinyint(1) NOT NULL DEFAULT 0 
AFTER 
  `email`

INSERT INTO `PREFIX_specific_price` (
  `id_product`, `id_shop`, `id_currency`, 
  `id_country`, `id_group`, `priority`, 
  `price`, `from_quantity`, `reduction`, 
  `reduction_type`, `from`, `to`
) (
  SELECT 
    dq.`id_product`, 
    1, 
    1, 
    0, 
    1, 
    0, 
    0.00, 
    dq.`quantity`, 
    IF(
      dq.`id_discount_type` = 2, dq.`value`, 
      dq.`value` / 100
    ), 
    IF (
      dq.`id_discount_type` = 2, 'amount', 
      'percentage'
    ), 
    '0000-00-00 00:00:00', 
    '0000-00-00 00:00:00' 
  FROM 
    `PREFIX_discount_quantity` dq 
    INNER JOIN `PREFIX_product` p ON (p.`id_product` = dq.`id_product`)
)

DROP 
  TABLE `PREFIX_discount_quantity`

INSERT INTO `PREFIX_specific_price` (
  `id_product`, `id_shop`, `id_currency`, 
  `id_country`, `id_group`, `priority`, 
  `price`, `from_quantity`, `reduction`, 
  `reduction_type`, `from`, `to`
) (
  SELECT 
    p.`id_product`, 
    1, 
    0, 
    0, 
    0, 
    0, 
    0.00, 
    1, 
    IF(
      p.`reduction_price` > 0, p.`reduction_price`, 
      p.`reduction_percent` / 100
    ), 
    IF(
      p.`reduction_price` > 0, 'amount', 
      'percentage'
    ), 
    IF (
      p.`reduction_from` = p.`reduction_to`, 
      '0000-00-00 00:00:00', p.`reduction_from`
    ), 
    IF (
      p.`reduction_from` = p.`reduction_to`, 
      '0000-00-00 00:00:00', p.`reduction_to`
    ) 
  FROM 
    `PREFIX_product` p 
  WHERE 
    p.`reduction_price` 
    OR p.`reduction_percent`
)

ALTER TABLE 
  `PREFIX_product` 
DROP 
  `reduction_price`, 
DROP 
  `reduction_percent`, 
DROP 
  `reduction_from`, 
DROP 
  `reduction_to`

INSERT INTO `PREFIX_configuration` (
  `name`, `value`, `date_add`, `date_upd`
) 
VALUES 
  (
    'PS_SPECIFIC_PRICE_PRIORITIES', 
    'id_shop;id_currency;id_country;id_group', 
    NOW(), NOW()
  ), 
  ('PS_TAX_DISPLAY', 0, NOW(), NOW()), 
  (
    'PS_SMARTY_FORCE_COMPILE', 1, NOW(), 
    NOW()
  ), 
  (
    'PS_DISTANCE_UNIT', 'km', NOW(), NOW()
  ), 
  (
    'PS_STORES_DISPLAY_CMS', 0, NOW(), 
    NOW()
  ), 
  (
    'PS_STORES_DISPLAY_FOOTER', 0, NOW(), 
    NOW()
  ), 
  (
    'PS_STORES_SIMPLIFIED', 0, NOW(), 
    NOW()
  ), 
  (
    'PS_STATSDATA_CUSTOMER_PAGESVIEWS', 
    1, NOW(), NOW()
  ), 
  (
    'PS_STATSDATA_PAGESVIEWS', 1, NOW(), 
    NOW()
  ), 
  (
    'PS_STATSDATA_PLUGINS', 1, NOW(), 
    NOW()
  )

INSERT INTO `PREFIX_configuration` (
  `name`, `value`, `date_add`, `date_upd`
) 
VALUES 
  (
    'PS_CONDITIONS_CMS_ID', 
    IFNULL(
      (
        SELECT 
          `id_cms` 
        FROM 
          `PREFIX_cms` 
        WHERE 
          `id_cms` = 3
      ), 
      0
    ), 
    NOW(), 
    NOW()
  )

CREATE TEMPORARY TABLE `PREFIX_configuration_tmp` (`value` text)

SET 
  @defaultOOS = (
    SELECT 
      value 
    FROM 
      `PREFIX_configuration` 
    WHERE 
      name = 'PS_ORDER_OUT_OF_STOCK'
  )

UPDATE 
  `PREFIX_product` p 
SET 
  `cache_default_attribute` = 0 
WHERE 
  `id_product` NOT IN (
    SELECT 
      `id_product` 
    FROM 
      `PREFIX_product_attribute`
  )

INSERT INTO `PREFIX_hook` (
  `name`, `title`, `description`, `position`
) 
VALUES 
  (
    'processCarrier', 'Carrier Process', 
    NULL, 0
  )

INSERT INTO `PREFIX_stock_mvt_reason_lang` (
  `id_stock_mvt_reason`, `id_lang`, 
  `name`
) 
VALUES 
  (1, 1, 'Order'), 
  (1, 2, 'Commande'), 
  (2, 1, 'Missing Stock Movement'), 
  (
    2, 2, 'Mouvement de stock manquant'
  ), 
  (3, 1, 'Restocking'), 
  (3, 2, 'RÃ©assort')

INSERT INTO `PREFIX_meta_lang` (
  `id_lang`, `id_meta`, `title`, `url_rewrite`
) 
VALUES 
  (
    1, 
    (
      SELECT 
        `id_meta` 
      FROM 
        `PREFIX_meta` 
      WHERE 
        `page` = 'authentication'
    ), 
    'Authentication', 
    'authentication'
  ), 
  (
    2, 
    (
      SELECT 
        `id_meta` 
      FROM 
        `PREFIX_meta` 
      WHERE 
        `page` = 'authentication'
    ), 
    'Authentification', 
    'authentification'
  ), 
  (
    3, 
    (
      SELECT 
        `id_meta` 
      FROM 
        `PREFIX_meta` 
      WHERE 
        `page` = 'authentication'
    ), 
    'AutenticaciÃ³n', 
    'autenticacion'
  )

LOCK TABLES `admin_assert` WRITE

UNLOCK TABLES

DROP 
  TABLE IF EXISTS `admin_role`

SELECT 
  * 
FROM 
  -- This is another comment
  MyTable # One final comment
  
  /* This is a block comment 
  */
WHERE 
  1 = 2;

SELECT 
  -- This is a test

SELECT 
  Test 
FROM 
  Test 
WHERE 
  (MyColumn = 1)
) 
AND (
  (
    (SomeOtherColumn = 2);

SELECT 
  * 
LIMIT 
  1; 
SELECT 
  a, 
  b, 
  c, 
  d 
FROM 
  e 
LIMIT 
  1, 2; 
SELECT 
  1, 
  2, 
  3 
WHERE 
  a in (1, 2, 3, 4, 5) 
  and b = 5;

SELECT 
  count - 50 
WHERE 
  a - 50 = b 
WHERE 
  1 
  and -50 
WHERE 
  -50 = a 
WHERE 
  a = -50 
WHERE 
  1 
  /*test*/
  -50 
WHERE 
  1 
  and -50;

SELECT 
  @ 
  and b;

SELECT 
  @"weird variable name";

SELECT 
  "no closing quote

SELECT 
  [sqlserver] 
FROM 
  [escap[e]]d style];